package saei.bean.parametros;

import javax.persistence.*;
import org.hibernate.annotations.Index;

import saei.bean.EntidadPersistente;
import saei.bean.vo.ParametroVO;

@SuppressWarnings("serial")
@Entity
@Table(name="Parametro")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="tipo_parametro", discriminatorType=DiscriminatorType.INTEGER)
public class Parametro  extends EntidadPersistente
{
    @Column(name="cod_parametro", unique=true)
    @Index(name="uk_orden_compra")
    private String codigo;
    @Column(name="descripcion")
    private String descripcion;
    @ManyToOne(cascade=CascadeType.PERSIST)
    @JoinColumn(name="parametro_padre")
    private Parametro padre;

    public Parametro() {}
    
    public Parametro (String codigo){
        this.codigo = codigo;
    }

    public Parametro (String codigo, String descripcion, Parametro padre) {
        this.codigo = codigo;
        this.descripcion = descripcion;
        this.padre = padre;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Parametro getPadre() {
        return padre;
    }

    public void setPadre(Parametro padre) {
        this.padre = padre;
    }
    
    public ParametroVO getVO() {
    	ParametroVO retVal = new ParametroVO();
    	retVal.setCodigo(codigo);
    	retVal.setDescripcion(descripcion);
    	return retVal;
    }
}
